//package com.zmn.plat.admin.controller.base.phenomenon;
//
//import com.zmn.common.dto.VtDTO;
//import com.zmn.common.dto2.ResponseDTO;
//import com.zmn.common.utils.number.NumberUtil;
//import com.zmn.consts.GlobalConsts;
//import com.zmn.plat.admin.controller.PlatBaseController;
//
//
//import com.zmn.plat.business.interfaces.base.phenomenon.PhenomenonBService;
//import com.zmn.plat.model.entity.base.fault.FaultQuery;
//import com.zmn.plat.model.entity.base.maintainitem.MaintainItemQuery;
//import com.zmn.plat.model.entity.base.phenomenon.Phenomenon;
//import com.zmn.plat.model.entity.base.phenomenon.PhenomenonFaultQuery;
//import com.zmn.plat.model.entity.base.phenomenon.PhenomenonMaintainQuery;
//import com.zmn.plat.model.entity.base.phenomenon.PhenomenonQuery;
//import com.zmn.plat.model.vo.base.phenomenon.PhenomenonVO;
//import com.zmn.plat.services.interfaces.base.fault.FaultService;
//import com.zmn.plat.services.interfaces.base.phenomenon.PhenomenonMaintainService;
//import com.zmn.plat.services.interfaces.base.phenomenon.PhenomenonService;
//import com.zmn.plat.services.interfaces.base.maintainitem.MaintainItemService;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.shiro.authz.annotation.RequiresPermissions;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.web.servlet.ModelAndView;
//
//import javax.annotation.Resource;
//import java.util.*;
//import java.util.stream.Collectors;
//
//
///**
// * 故障现象基础查询Controller
// *
// * @author chengguang
// * @since 2021/11/18 17:54
// */
//@Slf4j
//@RestController
//@RequestMapping("/base/phenomenon")
//public class PhenomenonListController extends PlatBaseController {
//
//    @Resource
//    private PhenomenonService phenomenonService;
//
//    @Resource
//    private PhenomenonBService phenomenonBService;
//
//    @Resource
//    private FaultService faultService;
//
//    @Resource
//    private MaintainItemService maintainItemService;
//
//    @Resource
//    private PhenomenonMaintainService phenomenonMaintainService;
//
//    /**
//     * 描述: 查询列表
//     *
//     * @author chengguang
//     * @since 2021/11/18 17:54
//     */
//    @RequestMapping("/list")
//    @RequiresPermissions("/base/phenomenon/list.action")
//    public ModelAndView list(PhenomenonQuery query) {
//        ModelAndView mv = new ModelAndView("base/phenomenon/list");
//        try {
//            List<PhenomenonVO> items = phenomenonBService.listPagePhenomenonByQuery(query);
//            mv.addObject("items", items);
//            mv.addObject("vo", query);
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.error("查询失败,Exception{},msg{}", e, e.getMessage());
//        }
//        return mv;
//    }
//
//
//    /**
//     * 描述: 查询故障列表
//     *
//     * @param @param query 查询
//     * @return @return {@link ModelAndView }
//     * @author chengguang
//     * @since 2021/11/22 13:42
//     */
//    @RequestMapping("/listFaultName")
//    public ModelAndView listFaultName(@RequestParam(value = "phenId", defaultValue = "0") Integer phenId) {
//        ModelAndView mv = new ModelAndView("base/phenomenon/relationFault");
//        try {
//            //查询故障现象关联的故障
//            PhenomenonFaultQuery phenManageQuery = new PhenomenonFaultQuery();
//            phenManageQuery.setPhenId(phenId);
//            List<VtDTO> phenomenonFaults = phenomenonBService.listPhenomenonFault(phenManageQuery)
//                    .stream().map(item -> {
//                        return new VtDTO(item.getFaultId(), item.getFaultName());
//                    }).collect(Collectors.toList());
//            mv.addObject("phenomenonFaults", phenomenonFaults);
//            mv.addObject("phenId", phenId);
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.error("查询失败,Exception{},msg{}", e, e.getMessage());
//        }
//        return mv;
//    }
//
//    /**
//     * 描述: 查询检修项目列表
//     *
//     * @author chengguang
//     * @since 2021/11/19 14:45
//     */
//    @RequestMapping("/listMaintainName")
//    public ModelAndView listMaintainName(@RequestParam(value = "phenId", defaultValue = "0") Integer phenId) {
//        ModelAndView mv = new ModelAndView("base/phenomenon/relationMaintain");
//        try {
//            //查询故障现象关联的检修项目
//            PhenomenonMaintainQuery deteQuery = new PhenomenonMaintainQuery();
//            deteQuery.setPhenId(phenId);
//            List<VtDTO> maintains = phenomenonMaintainService.listByQuery(deteQuery).stream().map(item -> {
//                return new VtDTO(item.getMaintainId(), item.getMaintainName());
//            }).collect(Collectors.toList());
//            mv.addObject("maintains", maintains);
//            mv.addObject("phenId", phenId);
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.error("查询失败,Exception{},msg{}", e, e.getMessage());
//        }
//        return mv;
//    }
//
//
//    /**
//     * 描述: 查询所有的状态开启故障
//     *
//     * @param @param query
//     * @return @return {@link ResponseDTO<List<>> }
//     * @author chengguang
//     * @since 2021/11/23 13:39
//     */
//    @RequestMapping("/listFault")
//    @ResponseBody
//    public ResponseDTO<Map<String, Object>> listFault(@ModelAttribute FaultQuery query) {
//        try {
//            Map<String, Object> result = new HashMap<>(4);
//            query.setStatus(GlobalConsts.YES);
//            List<VtDTO> items = faultService.listPageByQuery(query).stream().map(item ->
//                    new VtDTO(item.getFaultId(), item.getFaultName() + "-" + item.getFaultId())
//            ).collect(Collectors.toList());
//            result.put("list", items);
//            result.put("totalCount", query.getTotalCount());
//            return ResponseDTO.success(result);
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.error("查询失败,Exception{},msg{}", e, e.getMessage());
//            return ResponseDTO.fail("查询失败！");
//        }
//    }
//
//    /**
//     * 描述: 查询状态开启的检修项目
//     *
//     * @param @param query 查询
//     * @return @return {@link ResponseDTO<List<>> }
//     * @author chengguang
//     * @since 2021/11/23 16:42
//     */
//    @RequestMapping("/listMaintain")
//    @ResponseBody
//    public ResponseDTO<Map<String, Object>> listMaintain(@ModelAttribute MaintainItemQuery query) {
//        try {
//            Map<String, Object> result = new HashMap<>(4);
//            query.setStatus(GlobalConsts.YES);
//            List<VtDTO> items = maintainItemService.listPageByQuery(query).stream().map(item ->
//                    new VtDTO(item.getMaintainId(), item.getMaintainName() + "-" + item.getMaintainId())
//            ).collect(Collectors.toList());
//            result.put("list", items);
//            result.put("totalCount", query.getTotalCount());
//            ;
//            return ResponseDTO.success(result);
//        } catch (Exception e) {
//            e.printStackTrace();
//            log.error("查询失败,Exception{},msg{}", e, e.getMessage());
//            return ResponseDTO.fail("查询失败！");
//        }
//    }
//
//
//    /**
//     * 描述: 详情
//     *
//     * @author chengguang
//     * @since 2021/11/18 17:54
//     */
//    @RequestMapping("/addEditView")
//    @RequiresPermissions("/base/phenomenon/addEditView.action")
//    public ModelAndView addEditView(Integer phenId) {
//
//        Phenomenon phenomenon;
//        ModelAndView mv = new ModelAndView("base/phenomenon/detail");
//        try {
//            if (NumberUtil.isNullOrZero(phenId)) {
//                phenomenon = new Phenomenon();
//            } else {
//                phenomenon = phenomenonService.findById(phenId);
//            }
//            mv.addObject("phenomenon", phenomenon);
//        } catch (Exception e) {
//            log.error("查询失败,Exception{},msg{}", e, e.getMessage());
//        }
//        return mv;
//    }
//    /**
//     * 导入Excel
//     *
//     * @author yangshuangping
//     * @since 2021-05-11 10:47:56
//     */
//    @RequestMapping("importExcel")
//    public ModelAndView importExcel() {
//        ModelAndView mav = new ModelAndView("base/phenomenon/importExcel");
//        return mav;
//    }
//
//}
